﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;

namespace ServiceDeskUNAB.Controlador
{
    class ProyectoControlador
    {
        private static ProyectoControlador instance;


        private ProyectoControlador()
        {           
        }

        public static ProyectoControlador Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new ProyectoControlador();
                }
                return instance;
            }
        }
        public bool Ingresar(int ID_Proyecto, int Raiz_Proyecto, string Nombre_Proyecto, Boolean Visibilidad_Proyecto)
        {

            try
            {
                SqlCommand com = new SqlCommand();


                com.CommandText = "INSERT INTO Proyecto" +
                    "(ID_Proyecto, Raiz_Proyecto, Nombre_Proyecto, Visibilidad_Proyecto)" + "VALUES" +
                    "(@ID_Proyecto, @Raiz_Proyecto, @Nombre_Proyecto, @Visibilidad_PRoyecto)";

                com.Parameters.AddWithValue("@ID_Proyecto", ID_Proyecto);
                com.Parameters.AddWithValue("@Raiz_Proyecto", Raiz_Proyecto);
                com.Parameters.AddWithValue("@Nombre_Proyecto", Nombre_Proyecto);
                com.Parameters.AddWithValue("@Visibilidad_Proyecto", Visibilidad_Proyecto);


                com.Connection = Conexion.Instance.Con;
                SqlDataReader ejecutar = com.ExecuteReader();
                Conexion.Instance.Con.Close();
                return true;
            }
            catch (Exception e)
            {
                Conexion.Instance.Con.Close();
                Console.WriteLine(e.Message);
                return false;
                throw;
            }

        }
        public bool Modificar(int ID_Proyecto, int Raiz_Proyecto, string Nombre_Proyecto, Boolean Visibilidad_Proyecto)
        {
            try
            {
                SqlCommand com = new SqlCommand();


                com.CommandText = "UPDATE Proyecto " +
                    "SET Raiz_Proyecto = @Raiz_Proyecto, Nombre_Proyecto = @Nombre_Proyecto, Visibilidad_Proyecto = @Visibilidad_Proyecto" +
                    "WHERE ID_Proyecto = @ID_Proyecto";

                com.Parameters.AddWithValue("@ID_Proyecto", ID_Proyecto);
                com.Parameters.AddWithValue("@Raiz_Proyecto", Raiz_Proyecto);
                com.Parameters.AddWithValue("@Nombre_Proyecto", Nombre_Proyecto);
                com.Parameters.AddWithValue("@Visibilidad_Proyecto", Visibilidad_Proyecto);

                com.Connection = Conexion.Instance.Con;
                SqlDataReader ejecutar = com.ExecuteReader();
                // TODO terminar esto

                Conexion.Instance.Con.Close();
                return true;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Conexion.Instance.Con.Close();
                return false;
                throw;
            }
        }
        public bool Eliminar(string ID_Proyecto)
        {
            bool resultado = false;
            try
            {
                SqlCommand com = new SqlCommand("DELETE FROM Proyecto WHERE ID_Proyecto = '" + ID_Proyecto + "')");
                SqlDataReader ejecutar = com.ExecuteReader();
                if (ejecutar.Read())
                {
                    resultado = true;
                }
                Conexion.Instance.Con.Close();
                return resultado;
            }
            catch (Exception)
            {
                Conexion.Instance.Con.Close();
                return resultado;
                throw;
            }
        }
    }
}
